package ehsm

type EnrollResp struct {
	Resp
	Result struct {
		Appid  string `json:"appid"`
		Apikey string `json:"apikey"`
	} `json:"result"`
}

type GetVersionResp struct {
	Resp
	Result struct {
		Version string `json:"version"`
		GitSha  string `json:"git_sha"`
	} `json:"result"`
}

type CreateKeyResp struct {
	Resp
	Result struct {
		Cmk string `json:"cmk"`
	} `json:"result"`
}

type EncryptResp struct {
	Resp
	Result struct {
		CipherText string `json:"ciphertext"`
	} `json:"result"`
}

type DecryptResp struct {
	Resp
	Result struct {
		PlainText string `json:"plaintext"`
	} `json:"result"`
}

type GenerateDataKeyResp struct {
	Resp
	Result struct {
		PlainText  string `json:"plaintext"`
		CipherText string `json:"ciphertext"`
	} `json:"result"`
}

type GenerateDataKeyWithoutPlaintextResp struct {
	Resp
	Result struct {
		CipherText string `json:"ciphertext"`
	} `json:"result"`
}

type SignResp struct {
	Resp
	Result struct {
		Signature string `json:"signature"`
	} `json:"result"`
}

type VerifyResp struct {
	Resp
	Result struct {
		Result bool `json:"result"`
	} `json:"result"`
}

type AsymmetricEncryptResp struct {
	Resp
	Result struct {
		CipherText string `json:"ciphertext"`
	} `json:"result"`
}

type AsymmetricDecryptResp struct {
	Resp
	Result struct {
		PlainText string `json:"plaintext"`
	} `json:"result"`
}
type ExportDataKeyResp struct {
	Resp
	Result struct {
		NewDataKey string `json:"newdatakey"`
	} `json:"result"`
}

type VerifyQuoteResp struct {
	Resp
	Result struct {
		MrEnclave string `json:"mr_enclave"`
		MrSigner  string `json:"mr_signer"`
		Sign      string `json:"sign"`
	} `json:"result"`
}

type GenHmacResp struct {
	Resp
	Result struct {
		Hmac string `json:"hmac"`
	} `json:"result"`
}
